package org.sage.sdk.dada.infrastructure.common.response.result.common;

import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 返回码
 */
public enum ResponseCode {

    系统异常(-1, "系统异常"),

    请求成功(0, "请求成功"),

    系统维护中暂时不能发单(999, "系统维护中暂时不能发单"),

    format值不正确默认为json(1994, "format值不正确默认为json"),

    body值不能为null(1995, "body值不能为null"),

    v的值不正确(1996, "v的值不正确默认为1.0"),

    原始订单order_id不能为空(1997, "原始订单order_id不能为空"),

    请求参数的个数不正确请仔细核对(1998, "请求参数的个数不正确请仔细核对"),

    接口请求的headers为applicationjson(1999, "接口请求的headers为application/json"),

    接口请求参数不能为空(2000, "接口请求参数不能为空"),

    app_key无效(2001, "app_key无效"),

    没有绑定正式商户请检查接口中source_id值(2002, "没有绑定正式商户请检查接口中source_id值"),

    签名错误(2003, "签名错误"),

    无效的门店编号(2004, "无效的门店编号"),

    订单不存在请核查订单号(2005, "订单不存在请核查订单号"),

    订单回调URL不存在(2006, "订单回调URL不存在"),

    参数query需按要求传值(2007, "参数query需按要求传值"),

    token不能为空(2008, "token不能为空"),

    timestamp不能为空(2009, "timestamp不能为空"),

    signature不能为空(2010, "signature不能为空"),

    达达订单不存在数据异常(2011, "达达订单不存在数据异常"),

    订单正在处理中请稍后再试(2012, "订单正在处理中请稍后再试"),

    请求接口参数异常请查看开发文档参数设定(2013, "请求接口参数异常请查看开发文档参数设定"),

    门店未审核(2043, "门店未审核"),

    城市尚未开通(2044, "城市尚未开通"),

    商家支付账号不存在(2045, "商家支付账号不存在"),

    运费服务不可用(2047, "运费服务不可用"),

    订单取消原因ID不能为空(2048, "订单取消原因ID不能为空"),

    订单取消原因ID对应其他取消原因不能为空(2049, "订单取消原因ID对应其他取消原因不能为空"),

    订单配送中无法取消(2050, "订单配送中无法取消"),

    订单已完成配送无法取消(2051, "订单已完成配送无法取消"),

    订单已过期无法取消(2052, "订单已过期无法取消"),

    订单取消失败(2053, "订单取消失败"),

    小费不能为空或者字符必须为数字(2054, "小费不能为空或者字符必须为数字"),

    小费额度不能少于1元(2055, "小费额度不能少于1元"),

    城市区号不能为空(2056, "城市区号不能为空"),

    新增小费不能小于原来订单小费的值(2057, "新增小费不能小于原来订单小费的值"),

    添加小费失败(2058, "添加小费失败"),

    只有在待接单的情况下才能加小费(2059, "只有在待接单的情况下才能加小费"),

    新的订单不能重新发单请走正常发单流程(2060, "新的订单不能重新发单请走正常发单流程"),

    只有已取消已过期投递异常的订单才能重发(2061, "只有已取消、已过期、投递异常的订单才能重发"),

    订单价格信息已过期请重新查询后发单(2062, "订单价格信息已过期请重新查询后发单"),

    该订单已发布请选择新的订单(2063, "该订单已发布请选择新的订单"),

    订单已下发且状态不是已取消已过期投递异常请选择新的订单(2064, "订单已下发且状态不是已取消、已过期、投递异常请选择新的订单"),

    该平台订单编号已处理请勿重复请求1(2065, "该平台订单编号已处理请勿重复请求"),

    该平台订单编号已处理请勿重复请求2(2066, "该平台订单编号已处理请勿重复请求"),

    该订单运费已查询请稍后再试(2067, "该订单运费已查询请稍后再试"),

    接口仅测试环境可用(2068, "接口仅测试环境可用"),

    追加的订单与门店不匹配(2069, "追加的订单与门店不匹配"),

    追加的订单已被接单(2070, "追加的订单已被接单"),

    追加的配送员不符合追加要求(2071, "追加的配送员不符合追加要求"),

    订单没有追加记录(2072, "订单没有追加记录"),

    订单状态已经改变取消失败(2073, "订单状态已经改变取消失败"),

    取消追加订单失败(2074, "取消追加订单失败"),

    投诉原因不能为空(2075, "投诉原因不能为空"),

    订单已取消无法重复取消(2076, "订单已取消无法重复取消"),

    小费金额不能大于订单金额(2077, "小费金额不能大于订单金额"),

    deliveryNo不能为空(2078, "deliveryNo不能为空"),

    收货人纬度lat异常请检查是否有问题(2079, "收货人纬度lat异常请检查是否有问题"),

    收货人经度lng异常请检查是否有问题(2080, "收货人经度lng异常请检查是否有问题"),

    妥投异常确认返回物失败(2081, "妥投异常确认返回物失败"),

    确认失败订单状态不是返回中(2082, "确认失败订单状态不是返回中"),

    模拟失败订单必须被接单(2083, "模拟失败订单必须被接单"),

    原始订单origin_id不能为空(2104, "原始订单origin_id不能为空"),

    订单已下发如要重发请使用重发接口(2105, "订单已下发如要重发请使用重发接口"),

    pay_for_supplier_fee不能为空(2106, "pay_for_supplier_fee不能为空"),

    fetch_from_receiver_fee不能为空(2107, "fetch_from_receiver_fee不能为空"),

    deliver_fee不能为空(2108, "deliver_fee不能为空"),

    is_prepay不能为空(2109, "is_prepay不能为空"),

    App密码设置不符合要求必须包含数字和字母长度在(2110, "App密码设置不符合要求必须包含数字和字母长度在6~16内"),

    cargo_type不能为空(2111, "cargo_type不能为空"),

    cargo_weight不能为空(2112, "cargo_weight不能为空"),

    cargo_price不能为空(2113, "cargo_price不能为空"),

    supplier_name不能为空(2114, "supplier_name不能为空"),

    supplier_address不能为空(2115, "supplier_address不能为空"),

    supplier_phone不能为空(2116, "supplier_phone不能为空"),

    supplier_tel不能为空(2117, "supplier_tel不能为空"),

    supplier_lat不能为空(2118, "supplier_lat不能为空"),

    supplier_lng不能为空(2119, "supplier_lng不能为空"),

    receiver_name不能为空(2120, "receiver_name不能为空"),

    receiver_address不能为空(2121, "receiver_address不能为空"),

    receiver_phone不能为空(2122, "receiver_phone不能为空"),

    callback不能为空(2123, "callback不能为空"),

    expected_fetch_time不能为空(2124, "expected_fetch_time不能为空"),

    expected_finish_time不能为空(2125, "expected_finish_time不能为空"),

    city_code不能为空(2126, "city_code不能为空"),

    invoice_title不能为空(2127, "invoice_title不能为空"),

    receiver_lat或receiver_lng不能为空(2128, "receiver_lat或receiver_lng不能为空"),

    无效的收货地址解析地址坐标失败(2129, "无效的收货地址解析地址坐标失败"),

    该订单已发单不能查询运费(2130, "该订单已发单不能查询运费"),

    source_id值不正确测试环境默认为73753(2131, "source_id值不正确测试环境默认为73753"),

    门店已下线不能发单(2132, "门店已下线不能发单"),

    投诉原因id不存在请重新选择(2133, "投诉原因id不存在请重新选择"),

    投诉失败(2134, "投诉失败"),

    订单状态为待接单不能投诉(2135, "订单状态为待接单不能投诉"),

    门店尚未绑定商品类型(2136, "门店尚未绑定商品类型"),

    订单异常配送员信息不存在(2137, "订单异常配送员信息不存在"),

    receiver_lat或receiver_lng值不能为null(2138, "receiver_lat或receiver_lng值不能为null"),

    数据异常receiver_lat大于receiver_lng值(2139, "数据异常receiver_lat大于receiver_lng值"),

    订单已重发请稍后再试(2140, "订单已重发请稍后再试"),

    门店已下线请至开放平台激活门店(2141, "门店已下线请至开放平台激活门店"),

    余额不足请充值(2155, "余额不足请充值"),

    期望完成时间不合法(2170, "期望完成时间不合法"),

    accountId不能为空(2200, "accountId不能为空"),

    password不能为空(2201, "password不能为空"),

    AccountId不能为空(2300, "accountId不能为空"),

    merhcantId不能为空(2301, "merhcantId不能为空"),

    该商家尚未审核上线(2400, "该商家尚未审核上线"),

    商家不存在(2401, "商家不存在"),

    门店不存在(2402, "门店不存在"),

    门店编号已存在(2403, "门店编号已存在"),

    城市名称city_name不正确(2404, "城市名称city_name不正确"),

    区域名称area_name不正确(2405, "区域名称area_name不正确"),

    没有可以更新的参数请重新核对(2406, "没有可以更新的参数请重新核对"),

    业务类型不存在请重新选择(2407, "业务类型不存在请重新选择"),

    门店状态不存在请重新选择(2408, "门店状态不存在请重新选择"),

    新的门店编号不能与现有的门店编号相同(2409, "新的门店编号不能与现有的门店编号相同"),

    参数类型不正确Double类型不能传null与字符串(2410, "参数类型不正确Double类型不能传null与字符串"),

    参数类型不正确pay_for_supplier_fee为Double类型(2411, "参数类型不正确pay_for_supplier_fee为Double类型"),

    参数类型不正确fetch_from_receiver_fee为Double类型(2412, "参数类型不正确fetch_from_receiver_fee为Double类型"),

    参数类型不正确deliver_fee为Double类型(2413, "参数类型不正确deliver_fee为Double类型"),

    参数类型不正确cargo_type值不在展示的列表中(2414, "参数类型不正确cargo_type值不在展示的列表中"),

    参数类型不正确cargo_weight为Double(2415, "参数类型不正确cargo_weight为Double"),

    参数类型不正确cargo_num为Integer(2416, "参数类型不正确cargo_num为Integer"),

    参数类型不正确可以不传但是不能传null值(2417, "参数类型不正确可以不传但是不能传null值"),

    expected_fetch_time为unix时间戳精确到秒10位(2418, "expected_fetch_time为unix时间戳精确到秒10位"),

    body参数json解析出错请检查body内的参数格式是否正确(2419, "body参数json解析出错请检查body内的参数格式是否正确"),

    QA环境禁止修改11047059门店编号(2420, "QA环境禁止修改11047059门店编号"),

    order_mark_no格式不正确仅包含数字长度小于15或为空(2421, "order_mark_no格式不正确仅包含数字长度小于15或为空"),

    order_mark格式不正确仅包含字母长度小于10或为空(2422, "order_mark格式不正确仅包含字母长度小于10或为空"),

    重复的用户名(2423, "重复的用户名"),

    门店编码不能重复(2424, "门店编码不能重复"),

    C端用户的商家不能绑定(2425, "C端用户的商家不能绑定"),

    已与当前商家绑定(2426, "已与当前商家绑定"),

    已与其他商家绑定(2427, "已与其他商家绑定"),

    门店编码已存在(2428, "门店编码已存在"),

    查询余额失败(2429, "查询余额失败"),

    账户余额为负无法绑定(2430, "账户余额为负无法绑定"),

    未找到该用户名的门店或用户名密码错误(2431, "未找到该用户名的门店或用户名密码错误"),

    城市名称不正确(2432, "城市名称不正确"),

    区域名称不正确(2433, "区域名称不正确"),

    没有有效的数据(2434, "没有有效的数据"),

    isUseInsurance参数不能为null(2454, "isUseInsurance参数不能为null"),

    网络异常查询账户余额失败请重试(2455, "网络异常查询账户余额失败请重试"),

    运费账户余额不足无法使用保价(2456, "运费账户余额不足无法使用保价"),

    取消失败cancel_reason_id不在取消原因列表中(2457, "取消失败cancel_reason_id不在取消原因列表中"),

    取消失败订单状态为9不能取消(2458, "取消失败订单状态为9不能取消"),

    取消失败订单状态为10不能取消(2459, "取消失败订单状态为10不能取消"),

    取消失败订单状态不为待接单和待取货(2460, "取消失败订单状态不为待接单和待取货"),

    门店编号格式错误支持数字字母以及下划线和(2461, "门店编号格式错误支持数字字母以及下划线和-"),

    充值金额格式不正确可以精确到分(2462, "充值金额格式不正确可以精确到分"),

    获取充值Url失败请重试(2463, "获取充值Url失败请重试"),

    集合单已被接收(2464, "集合单已被接收"),

    请选择合适的场景category(2465, "请选择合适的场景category"),

    选择生成微信支付链接open_id不能为空(2466, "选择生成微信支付链接open_id不能为空");

    @Setter
    @Getter
    Integer code;

    @Setter
    @Getter
    String msg;

    ResponseCode(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public static String MESSAGE(Integer code) {
        String msg = null;

        ResponseCode[] values = ResponseCode.values();
        List<ResponseCode> resultList = new ArrayList<ResponseCode>(values.length);
        Collections.addAll(resultList, values);

        for (ResponseCode item : resultList) {
            if (item.code.equals(code)) {
                return item.getMsg();
            }
        }
        return msg;

    }

}
